// 本工具类主要封装了 通用的：保存、取消、关闭窗口等的操作。

/******************************************************************************
 *                                                                             *
 *                            close parent window                              *
 *                                                                             *
 ******************************************************************************/
function CloseParentWindow(action) {
    if (action == "close" && form.isChanged()) {
        if (confirm("数据被修改了，是否先保存？")) {
            return false;
        }
    }
    if (window.parent.CloseOwnerWindow) {
        return window.parent.CloseOwnerWindow(action);
    } else {
        window.parent.close();
    }
}

/******************************************************************************
 *                                                                             *
 *                            close current window                             *
 *                                                                             *
 ******************************************************************************/
function CloseWindow(action) {
    if (action == "close" && form.isChanged()) {
        if (confirm("数据被修改了，是否先保存？")) {
            return false;
        }
    }
    if (window.CloseOwnerWindow) {
        return window.CloseOwnerWindow(action);
    } else {
        window.close();
    }
}

/******************************************************************************
 *                                                                             *
 *                       onOk method call on save action                       *
 *                                                                             *
 ******************************************************************************/
function onOk(e) {
    SaveData();
}

/******************************************************************************
 *                                                                             *
 *                       onCancel method call on cancel action                 *
 *                                                                             *
 ******************************************************************************/
function onCancel(e) {
    CloseWindow("cancel");
}

/******************************************************************************
 *                                                                             *
 *    onParentCancel method call on parent open window cancel action           *
 *                                                                             *
 ******************************************************************************/
function onParentCancel(e) {
    CloseParentWindow("cancel");
}

/******************************************************************************
 *                                                                             *
 *    onValueChanged method call on search box value change                    *
 *                                                                             *
 ******************************************************************************/
function onValueChanged(e) {
    search();
}

/**
 * 身份证号码校验
 */
function onIDCardsValidation(e) {
    var idCard = e;
    if (idCard == "") {
        return false;
    } else if (idCard && idCard.length == 15) {
        //进行15位身份证的验证
        if (isValidityBrithBy15IdCard(idCard)) {
            return true;
        } else {
            return false;
        }
    } else if (idCard && idCard.length == 18) {
        var a_idCard = idCard.split("");                // 得到身份证数组
        if (isValidityBrithBy18IdCard(idCard) && isTrueValidateCodeBy18IdCard(a_idCard)) {   //进行18位身份证的基本验证和第18位的验证
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
}

/**
 * 判断身份证号码为18位时最后的验证位是否正确
 * @param a_idCard 身份证号码数组
 * @return
 */
function isTrueValidateCodeBy18IdCard(a_idCard) {
    var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1];    // 加权因子
    var ValideCode = [1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2];            // 身份证验证位值.10代表X
    var sum = 0;                             // 声明加权求和变量
    if (a_idCard[17].toLowerCase() == 'x') {
        a_idCard[17] = 10;                    // 将最后位为x的验证码替换为10方便后续操作
    }
    for (var i = 0; i < 17; i++) {
        sum += Wi[i] * a_idCard[i];            // 加权求和
    }
    valCodePosition = sum % 11;                // 得到验证码所位置
    if (a_idCard[17] == ValideCode[valCodePosition]) {
        return true;
    } else {
        return false;
    }
}

/**
 * 验证18位数身份证号码中的生日是否是有效生日
 * @param idCard 18位书身份证字符串
 * @return
 */
function isValidityBrithBy18IdCard(idCard18) {
    var year = idCard18.substring(6, 10);
    var month = idCard18.substring(10, 12);
    var day = idCard18.substring(12, 14);
    var temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));
    // 这里用getFullYear()获取年份，避免千年虫问题
    if (temp_date.getFullYear() != parseFloat(year)
        || temp_date.getMonth() != parseFloat(month) - 1
        || temp_date.getDate() != parseFloat(day)) {
        return false;
    } else {
        return true;
    }
}

/**
 * 验证15位数身份证号码中的生日是否是有效生日
 * @param idCard15 15位书身份证字符串
 * @return
 */
function isValidityBrithBy15IdCard(idCard15) {
    var year = idCard15.substring(6, 8);
    var month = idCard15.substring(8, 10);
    var day = idCard15.substring(10, 12);
    var temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));
    // 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法
    if (temp_date.getYear() != parseFloat(year)
        || temp_date.getMonth() != parseFloat(month) - 1
        || temp_date.getDate() != parseFloat(day)) {
        return false;
    } else {
        return true;
    }
}

/**
 * 校验电话号码
 * @param num 电话号码
 * @return
 */
function validatePhone(num) {
    var isPhone = /^1[3456789]\d{9}$/;//手机号码
    var isMob = /^0?1[3|4|5|8][0-9]\d{8}$/;// 座机格式
    if (isMob.test(num) || isPhone.test(num)) {
        return true;
    } else {
        return false;
    }
}

/**
 * 校验固定电话和手机号码，并返回组装后的联系电话信息
 * @param tel 电话号码
 * @param phone 手机号码
 * @return
 */
function checkTelAndPhone(tel, phone) {
    var newTelAndPhone = '';
    var flag = false;
    var kflag = ''; //是否都为空
    if (('' != tel) && ('' != phone)) {
        if (!validateTel(tel) || !validatePhone1(phone)) {
        } else {
            newTelAndPhone = tel + '|' + phone;
            flag = true;
        }
    } else if (('' != tel) && ('' == phone)) {
        if (!validateTel(tel)) {
        } else {
            newTelAndPhone = tel + '|';
            flag = true;
        }
    } else if (('' == tel) && ('' != phone)) {
        if (!validatePhone1(phone)) {
        } else {
            newTelAndPhone = '|' + phone;
            flag = true;
        }
    } else {
        kflag = '-1';
        flag = true;
    }
    var checkTelAndPhoneBack = {'newTelAndPhone': newTelAndPhone, 'flag': flag, 'kflag': kflag};
    return checkTelAndPhoneBack;
}

/**
 * 校验固定电话和手机号码格式
 * @param num 电话号码
 * @return
 */
function validatePhone1(num) {
    var isPhone = /^1[3456789]\d{9}$/;//手机号码
    if (isPhone.test(num)) {
        return true;
    } else {
        return false;
    }
}

function validateTel(num) {
    var isMob = /^((0\d{2,3})-?)(\d{7,8})$/;// 座机格式
    if (isMob.test(num)) {
        return true;
    } else {
        return false;
    }
}

//解除吸毒
function toRemoveDrug(priNum) {
    //自定义弹窗
    mini.showMessageBox({
        title: "提醒",
        width: "30%",
        height: "20%",
        allowDrag: true,
        allowResize: false,
        showCloseButton: true,
        buttons: ["取消","确认"],
        html: "<b style='size: 25px;text-align: center'>戒毒中无法操作，是否解除戒毒状态,解除后不可恢复</b>",
        callback: function (action) {
            var data={
                "priNum":priNum,
                "xd":'3',
                "id":'-2'
            }
            if(action=="确认"){
                $.ajax({
                    url: "/azbj/wxxpg/update",
                    type: "post",
                    data: {
                        "data": JSON.stringify(data)
                    },
                    success: function (success) {
                        mini.alert("成功解除戒毒中状态");
                        grid.reload();
                    }
                });
            }
        }
    });
}

/**
 * 设置input置灰不可点击
 * 入参为数组，内包含方法名
 */
function setInputEnabled(arr){
    for(var item of arr){
        mini.get(item).setEnabled(false);
    }
}

/**
 * 前台渲染完成后将空字符的改为无
 * @param state 1是无
 */
function checkContent(state){
    var obj = $('.check-content-7395');
    var describe;
    if(state===1){
        describe = '无'
    }
    for(var i=0;i<obj.length;i++){
        if(obj[i].innerText==undefined||obj[i].innerText==''){
            $('.check-content-7395')[i].innerText=describe;
        }
    }
}

/**
 * 表格渲染完成后，判断列表是否为空，进行提示或删除
 */
function noDateHint(dataTotal){
    if(dataTotal===0){
        $('.mini-grid-rows-view').css('position','relative').append("<span id='noData' style='font-size:35px;color: #ccc;position:absolute;top:40%;left:45%'>暂无数据</span>");
    }else {
        $('#noData').remove();
    }
}

// 引入其他JS文件
document.write("<script type='text/javascript' src='/static/js/common/public.js'></script>");